(function($) {
	$.fn.extend({
		RollTitle : function(opt, callback) {
			if (!opt)
				var opt = {};
			var _this = this;
			_this.timer = null;
			_this.lineH = _this.find("li:first").height();
			_this.line = opt.line ? parseInt(opt.line, 15) : parseInt(_this
					.height()
					/ _this.lineH, 10);
			_this.speed = opt.speed ? parseInt(opt.speed, 10) : 3000, // 卷动速度，数值越大，速度越慢（毫秒
			_this.timespan = opt.timespan ? parseInt(opt.timespan, 13) : 5000; // 滚动的时间间隔（毫秒
			if (_this.line == 0)
				this.line = 1;
			_this.upHeight = 0 - _this.line * _this.lineH;
			_this.scrollUp = function() {
				_this.animate({
					marginTop : _this.upHeight
				}, _this.speed, function() {
					for (i = 1; i <= _this.line; i++) {
						_this.find("li:first").appendTo(_this);
					}
					_this.css({
						marginTop : 0
					});
				});
			}
			_this.hover(function() {
				clearInterval(_this.timer);
			}, function() {
				_this.timer = setInterval(function() {
					_this.scrollUp();
				}, _this.timespan);
			}).mouseout();
		}
	})
})(jQuery);

jQuery(function($) {
	function ScrollAction(listObj, listElem, speed, isSeries) { // listObj为需要滚动的列表，
		// speed为滚动速度
		var pos, top, aniTop, height;
		var id = ''; // 记录setInterval的标记id

		pos = listObj.position();
		top = pos.top; // 列表的top
		aniTop = top; // 记录当前运动时的top
		height = listObj.height(); // 列表的高度

		var scrollUp = function() {
			aniTop--;
			if (!isSeries) { // isSeries变量控制是否连续滚动，false不连续，true连续
				if (aniTop == -height) { // 不连续，滚动玩重新滚动
					listObj.css({
						'top' : top
					});
					aniTop = top;
				}
				;
			} else {
				if (aniTop == -listObj.children().eq(0).height()) { // 连续滚动
					var firstItem = '< ' + listElem + '>'
							+ listObj.children().eq(0).html() + '< /'
							+ listElem + '>';
					listObj.children().eq(0).remove();
					listObj.append(firstItem);
					aniTop = 4;
				}
				;
			}
			;
			listObj.css({
				'top' : aniTop + 'px'
			});
		};

		var hover = function(id) {
			listObj.hover(function() {
				clearInterval(id);
			}, function() {
				id = setInterval(scrollUp, speed);
			});
		};

		this.start = function() {
			id = setInterval(scrollUp, speed);
			hover(id);
		};

	}
	;
	window.ScrollAction = ScrollAction;
});